/*
 * Copyright 2017 StreamSets Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.streamsets.pipeline.stage.destination.datalake;

import com.streamsets.pipeline.api.ErrorCode;
import com.streamsets.pipeline.api.GenerateResourceBundle;

@GenerateResourceBundle
public enum Errors implements ErrorCode {
  ADLS_00("Invalid directory template expression: '{}'"),
  ADLS_01("Invalid time basis expression: '{}'"),
  ADLS_02("Failed to connect to Azure Data Lake Store: '{}'"),
  ADLS_03("Failed to write to Azure Data Lake Store: '{}'"),
  ADLS_04("Failed to close the stream: '{}'"),
  ADLS_05("The path '{}' already exists."),
  ADLS_06("Invalid setting for idle timeout"),
  ADLS_07("Time basis expression '{}' evaluated to NULL for this record"),
  ADLS_08("Files Suffix contains '/' or starts with '.'"),
  ADLS_09("The maximum records in a file must be a positive integer or zero to opt out of the option"),
  ADLS_10("The late record time limit expression '{}' is invalid: {}"),
  ADLS_11("ExecutionException data generation thread '{}'"),
  ADLS_12("Error while writing to ADLS: {}"),
  ADLS_13("Error while renaming _tmp_ files: {}"),
  ADLS_14("ADLException was thrown with requestID: {}, httpResponsecode: {}, httpResponseMessage: {}, remoteExceptionMessage: {}, remoteExceptionName: {}, remoteExceptionJavaClassName: {}"),
  ADLS_15("Can't resolve credential: {}"),
  ;
  private final String msg;

  Errors(String msg) {
    this.msg = msg;
  }

  @Override
  public String getCode() {
    return name();
  }

  @Override
  public String getMessage() {
    return msg;
  }

}
